Robot with smart trajectory recording

ABSTRACT

An embodiment includes a method of determining a collision-free space for a robotic welding system. The method includes fixing a location of a part to be welded in a 3D coordinate space of a robotic welding system. An arm of the robotic welding system is moved around the part within the 3D coordinate space. Data corresponding to positions and orientations of the arm in the 3D coordinate space are recorded as the arm is moved within the 3D coordinate space around the part. The data is translated to swept volumes of data within the 3D coordinate space. The swept volumes of data are merged to generate 3D geometry data representing a continuous collision-free space within the 3D coordinate space.

CROSS REFERENCE TO RELATED APPLICATION/INCORPORATION BY REFERENCE

This U.S. Patent Application is a continuation-in-part (CIP) patentapplication of U.S. patent application Ser. No. 17/880,802 filed on Aug.4, 2022 which claims priority to and the benefit of U.S. ProvisionalPatent Application Ser. No. 63/280,289 filed on Nov. 17, 2021, which areincorporated by reference herein in their entirety. U.S. PublishedPatent Application No. 2020/0139474 A1 is incorporated by referenceherein it its entirety. U.S. Pat. No. 9,833,857 B2 is incorporated byreference herein in its entirety.

FIELD

Embodiments of the present invention relate to the use of robots (e.g.,collaborative robots or cobots, or more traditional industrial robots)for welding or cutting. More specifically, embodiments of the presentinvention relate to systems and methods for recording robot pathtraversals and creating associated motion programs in a more efficientmanner.

BACKGROUND

Programming motion trajectories of a robot (e.g., a collaborative robotor an industrial robot) prior to actual welding or cutting can be quitecomplicated. In addition to the challenges associated with programming aweld trajectory along a weld joint, other challenges associated withprogramming an ingress trajectory toward a weld joint and an egresstrajectory away from a weld joint exist. Furthermore, avoidingcollisions of the robot with other objects within the welding or cuttingenvironment provide even more challenges.

SUMMARY

An embodiment includes a method of determining a collision-free spacefor a robotic welding system. The method includes fixing a location of apart to be welded in a 3D coordinate space of a robotic welding system.An arm of the robotic welding system is moved around the part within the3D coordinate space. Data corresponding to positions and orientations ofthe arm in the 3D coordinate space are recorded as the arm is movedwithin the 3D coordinate space around the part. The data is translatedto swept volumes of data within the 3D coordinate space. The sweptvolumes of data are merged to generate 3D geometry data representing acontinuous collision-free space within the 3D coordinate space. Themethod may further include planning a collision-free motion path of thearm through the 3D coordinate space using at least the 3D geometry datarepresenting the continuous collision-free space. The method may alsoinclude planning a collision-free air motion path within the 3Dcoordinate space from an end point of a first weld seam of the part to astart point of a second weld seam of the part using position data of theend point, position data of the start point, and the 3D geometry datarepresenting the continuous collision-free space. The method may includeplanning a collision-free welding path within the 3D coordinate spacefrom a start point of a weld seam of the part to an end point of theweld seam of the part using at least position data of the start point,position data of the end point, and the 3D geometry data representingthe continuous collision-free space. The arm of the robotic weldingsystem is represented by the robotic welding system as data of 3Dgeometric volumes that occupy space within the 3D coordinate space.Moving the arm of the robotic welding system around the part within the3D coordinate space may be accomplished manually by a user, in oneembodiment. Moving the arm of the robotic welding system around the partwithin the 3D coordinate space may be accomplished automatically by acontroller of the robotic welding system running a collision-free spacesearch algorithm, in one embodiment. In one embodiment, the recording,translating, and merging are accomplished by a controller of the roboticwelding system running a collision-free space determination algorithm.In one embodiment, the data corresponding to the positions and theorientations of the arm in the 3D coordinate space are represented by x,y, z location data and roll, pitch, yaw orientation data correspondingto joints of the arm. Coordinate transformation mathematics is performedby a controller of the robotic welding system to accomplish thetranslating and the merging, in one embodiment.

An embodiment includes a method of determining a collision-free spacefor a robotic welding system. The method includes moving a positionermechanism in coordination with moving an arm of a robotic welding systemthrough a 3D space of a welding environment, wherein the positionermechanism is holding a part to be welded, and wherein the roboticwelding system has coordinated kinematic control of the arm and thepositioner mechanism. Higher-dimensional joint space data is recorded,corresponding to combined positions and orientations of joints of thearm and joints of the positioner mechanism as the arm and the positionermechanism are moved in coordination through the 3D space. Thehigher-dimensional joint space data is mapped to a continuoushigher-dimensional volume space data that represents 3D volumes occupiedby the arm, the positioner, and the part during the moving. Thecontinuous higher-dimensional volume space data representscollision-free configurations of the arm, the positioner, and the part.The method may further include planning a collision-free motion path ofthe arm and the positioner mechanism through the 3D space using at leastthe continuous higher-dimensional volume space data representing thecollision-free configurations. The method may also include planning acollision-free air motion path within the 3D space from an end point ofa first weld seam of the part to a start point of a second weld seam ofthe part using position data of the end point, position data of thestart point, and the continuous higher-dimensional volume space datarepresenting the collision-free configurations. The method may alsoinclude planning a collision-free welding path within the 3D space froma start point of a weld seam of the part to an end point of the weldseam of the part using at least position data of the start point,position data of the end point, and the continuous higher-dimensionalvolume space data representing the collision-free configurations. In oneembodiment, the arm of the robotic welding system and the positionermechanism are represented within the robotic welding system as data of3D geometric volumes that occupy the 3D space. In one embodiment, movingthe arm of the robotic welding system in coordination with thepositioner mechanism within the 3D space is accomplished automaticallyby a controller of the robotic welding system running a collision-freespace search algorithm. The recording and mapping are accomplished by acontroller of the robotic welding system running a collision-free spacedetermination algorithm, in accordance with one embodiment. Thehigher-dimensional joint space data, corresponding to combined positionsand orientations of joints of the arm and joints of the positionermechanism, are represented by x, y, z location data and roll, pitch, yaworientation data. In one embodiment, coordinate transformationmathematics is performed by a controller of the robotic welding systemto accomplish the mapping. In one embodiment, the arm is holding awelding tool as the arm is moving.

In one embodiment, the motion of the tool center point (TCP) of a robotis automatically recorded as an operator moves the arm of the robotwithin the workspace. A welding tool (e.g., a welding gun or torch) isattached to the end of the robot arm (with respect to the TCP) and therobot is calibrated to know where the TCP is located inthree-dimensional space with respect to at least one coordinate system(e.g., the coordinate system of the robot and/or of the workspace). Theoperator pushes an actuator (e.g., a button or a switch) and proceeds tomove the robot arm in space (e.g., ingress towards a weld joint to bewelded, across the weld joint, and/or egress away from the weld joint).Pushing of the actuator starts the robot to record the position of theTCP (and effectively the tip of the welding gun/torch) in 3D space asthe operator moves the robot arm. The operator does not have tosubsequently push a button or do anything else to cause multipleposition points to be recorded along the trajectory that the robot armtakes. Multiple position points defining the trajectory are recordedautomatically as the operator moves the robot arm, and a motion programfor the robot is automatically created. The number of recorded points isbased on a distance traveled, in accordance with one embodiment. Whenthe operator has completed moving the robot arm along the desiredtrajectory, the operator can push the same actuator again (or adifferent actuator) to stop the recording.

In one embodiment, a system may include a “smart” welding torch thatattaches to the arm of a robot and which can be moved along a desiredwelding path to program the desired welding path into a controller ofthe robot via actuators on the “smart” welding torch. In an alternativeembodiment, the torch can be a “smart” cutting torch for performingcutting operations instead of welding operations.

In one embodiment, a welding system for generating a motion program isprovided. The welding system includes a robot (e.g., a collaborativerobot) having an arm and a calibrated tool center point (TCP). Thewelding system also includes a welding tool connected to a distal end ofthe arm of the robot in a determined relation to the TCP. The weldingsystem further includes a programmable robot controller and aservo-mechanism apparatus configured to move the arm of the robot underthe command of the programmable robot controller via a motion program.The welding system also includes an actuator operatively connected tothe programmable robot controller. The welding system is configured toallow an operator to activate the actuator and proceed to manually movethe arm of the robot in a 3D space from a start point to a destinationpoint, defining an operator path. For example, the operator path may bean ingress path toward a work piece, or an egress path away from a workpiece. Activation of the actuator commands the programmable robotcontroller to record a plurality of spatial points of the TCP in the 3Dspace as the operator manually moves the arm of the robot along theoperator path. The operator does not have to subsequently activate anyactuator to cause the plurality of spatial points to be recorded alongthe operator path that the arm of the robot takes when manually moved bythe operator. The programmable robot controller is configured toidentify and eliminate extraneous spatial points from the plurality ofspatial points as recorded, leaving a subset of the plurality of spatialpoints as recorded, where the extraneous spatial points are a result ofextraneous movements of the arm of the robot by the operator. In oneembodiment, the extraneous spatial points are identified by the robotcontroller at least in part by the controller analyzing the plurality ofspatial points as recorded to determine which spatial points of theplurality of spatial points as recorded are not needed to accomplishmoving from the start point to the destination point within the 3Dspace. In one embodiment, the programmable robot controller isconfigured to perform a spatial smoothing operation on the subset of theplurality of spatial points as recorded, resulting in a smoothedtrajectory of spatial points, and the programmable robot controller isconfigured to automatically generate the motion program for the robotcorresponding to the smoothed trajectory of spatial points. In oneembodiment, the programmable robot controller is configured to perform aspatial interpolation operation on the subset of the plurality ofspatial points as recorded, resulting in an interpolated trajectory ofspatial points. The programmable robot controller is configured toperform a spatial smoothing operation on the interpolated trajectory ofspatial points as recorded, resulting in a smoothed trajectory ofspatial points, and the programmable robot controller is configured toautomatically generate the motion program for the robot corresponding tothe smoothed trajectory of spatial points.

In one embodiment, a robotic welding system for generating a motionprogram is provided. The robotic welding system includes a programmablerobot controller of a robot (e.g., a collaborative robot) having acomputer processor and a computer memory. The programmable robotcontroller is configured to digitally record, in the computer memory, aplurality of spatial points along an operator path in a 3D space takenby a calibrated tool center point (TCP) of the robot as an operatormanually moves a robot arm of the robot along the operator path from astart point to a destination point within the 3D space. For example, theoperator path may be an ingress path toward a work piece, or an egresspath away from a work piece. The programmable robot controller is alsoconfigured to identify and eliminate, from the computer memory,extraneous spatial points from the plurality of spatial points asdigitally recorded, leaving a subset of the plurality of spatial pointsas digitally recorded, where the extraneous spatial points are a resultof extraneous movements of the robot arm by the operator. In oneembodiment, the extraneous spatial points are identified by theprogrammable robot controller at least in part by the programmable robotcontroller analyzing the plurality of spatial points as digitallyrecorded to determine which spatial points of the plurality of spatialpoints as digitally recorded are not needed to accomplish moving fromthe start point to the destination point within the 3D space. In oneembodiment, the programmable robot controller is configured to perform aspatial smoothing operation on the subset of the plurality of spatialpoints as recorded, resulting in a smoothed trajectory of spatialpoints, and the programmable robot controller is configured toautomatically generate a motion program for the robot corresponding tothe smoothed trajectory of spatial points. In one embodiment, theprogrammable robot controller is configured to perform a spatialinterpolation operation on the subset of the plurality of spatial pointsas recorded, resulting in an interpolated trajectory of spatial points.The programmable robot controller is configured to perform a spatialsmoothing operation on the interpolated trajectory of spatial points asrecorded, resulting in a smoothed trajectory of spatial points, andautomatically generate a motion program for the robot corresponding tothe smoothed trajectory of spatial points.

Numerous aspects of the general inventive concepts will become readilyapparent from the following detailed description of exemplaryembodiments, from the claims, and from the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate various embodiments of thedisclosure. It will be appreciated that the illustrated elementboundaries (e.g., boxes, groups of boxes, or other shapes) in thefigures represent one embodiment of boundaries. In some embodiments, oneelement may be designed as multiple elements or multiple elements may bedesigned as one element. In some embodiments, an element shown as aninternal component of another element may be implemented as an externalcomponent and vice versa. Furthermore, elements may not be drawn toscale.

FIG. 1 illustrates one embodiment of a welding system having acollaborative robot;

FIG. 2 illustrates one embodiment of the collaborative robot of FIG. 1 ;

FIG. 3 illustrates one embodiment of a welding torch/gun attached to adistal end of an arm of the collaborative robot of FIG. 1 and FIG. 2 ;

FIG. 4 illustrates another embodiment of a welding torch/gun attached toa distal end of an arm of the collaborative robot of FIG. 1 and FIG. 2 ;

FIG. 5 illustrates an example of digitally recorded spatial positionpoints of an operator path formed by an operator moving an arm of thecollaborative robot of FIG. 2 ;

FIG. 6 illustrates a block diagram of an example embodiment of acontroller that can be used, for example, in the welding system of FIG.1 ;

FIG. 7 illustrates a flowchart of one embodiment of a method ofdetermining a collision-free space for a robotic welding system;

FIG. 8 illustrates a 3D geometry representing a collision-free spacewithin a 3D coordinate space having a robotic welding system (justshowing the cobot portion) and a part to be welded;

FIG. 9 illustrates several planned collision-free paths within thecollision-free space of FIG. 8 ;

FIG. 10 illustrates one embodiment of how portions of the arm of therobotic welding system cobot of FIG. 2 may be represented in acoordinate system space by 3D geometric volumes;

FIG. 11 illustrates a portion of the controller of FIG. 6 having storedtherein a collision-free space search algorithm and a collision-freespace determination algorithm;

FIG. 12 illustrates one embodiment of the collaborative robot (of arobotic welding system) of FIG. 2 within a 3D space along with apositioner mechanism for holding and moving a part to be welded withinthe 3D space; and

FIG. 13 illustrates a flowchart of one embodiment of a method ofdetermining continuous higher-dimensional volume space data representingcollision-free configurations for a robotic welding system and apositioner mechanism for holding and moving a part to be welded.

DETAILED DESCRIPTION

The examples and figures herein are illustrative only and are not meantto limit the subject invention, which is measured by the scope andspirit of the claims. Referring now to the drawings, wherein theshowings are for the purpose of illustrating exemplary embodiments ofthe subject invention only and not for the purpose of limiting same,FIG. 1 illustrates one embodiment of a welding system 100 having acollaborative robot 200. FIG. 2 illustrates one embodiment of thecollaborative robot 200 of FIG. 1 . The term welding system or roboticwelding system as used herein may refer to a collaborative roboticwelding system or an industrial robotic welding system, for example.

Referring to FIG. 1 and FIG. 2 , the welding system 100 includes acollaborative robot 200, a welding power supply 310, and a programmablerobot controller 320. The collaborative robot 200 has an arm 210configured to hold a welding torch (e.g., a welding gun) 220. The terms“torch” and “gun” are used herein interchangeably. The collaborativerobot 200 also includes a servo-mechanism apparatus 230 configured tomove the arm 210 of the collaborative robot 200 under the command of therobot controller 320 (via a motion program). In one embodiment, thewelding system 100 includes a wire feeder (not shown) to feed weldingwire to the welding torch 220.

In one embodiment, the motion of the calibrated tool center point (TCP205) of a cobot (and effectively the tip of the welding gun/torch 220)is recorded as an operator moves the arm of the cobot within theworkspace. A welding gun/torch 220 is attached to the end of the cobotarm 210 (with respect to the TCP) and the cobot is calibrated to knowwhere the TCP is located in three-dimensional space with respect to acoordinate system (e.g., the coordinate system of the cobot). Theoperator pushes an actuator (e.g., a button or a switch) and proceeds tomove the cobot arm in space (e.g., ingress towards a weld joint to bewelded, across the weld joint, or egress away from the weld joint). Thetrajectories associated with ingress and egress are known herein as “airmove” trajectories, since they are trajectories in the air and not atthe weld joint. Pushing of the actuator starts the cobot to record theposition of the TCP (and effectively the tip of the welding gun/torch)in 3D space (e.g., as coordinate points) as the operator moves the cobotarm. Another actuator 224 (e.g., see FIG. 4 herein) may be provided toallow the arm to be unlocked so it can be moved by the operator (e.g.,in the form of a “kill” switch).

In one embodiment, the welding torch 220 is a “smart” welding torch. Theterm “smart” is used herein to refer to certain programmablecapabilities provided by the welding torch/gun 220 which are supportedby the robot controller 320. In one embodiment, the welding torch 220includes a torch body 226 (e.g., see FIG. 3 herein) configured to beoperatively connected to the arm 210 of the collaborative robot 200. Oneactuator device 224 (e.g., see FIG. 4 ) on the torch body 226 isconfigured to be activated by a human user to enable the arm 210 of thecollaborative robot, with the welding torch 220 connected, to be movedby the human user (operator) along a desired path (e.g., along aningress path to a weld joint, along an egress path away from a weldjoint, or along a weld joint itself along which the collaborative robot200 is to make a weld). Another actuator device 222 (see FIG. 3 and FIG.4 ) on the torch body is configured to be activated by the human user toinitiate a recording cycle at a start point and to terminate therecording cycle at a destination or end point in three-dimensional (3D)space. The actuator devices 222 and 224 are configured to communicatewith the robot controller 320 to record the weld points along thedesired path. For example, a weld may be made along a desired weldingpath by the collaborative robot 200 using the welding torch 220 from thestart point to the destination point.

The operator does not have to repetitively push a button (actuator) ordo anything else to cause multiple position points to be recorded (e.g.,by the cobot controller 320) along the trajectory that the cobot armtakes. Multiple position points (e.g., spatial coordinate points)defining the trajectory are recorded automatically as the operator movesthe cobot arm, and a motion program for the cobot is automaticallycreated (e.g., by the cobot controller 320). The number of recordedpoints is based on a distance traveled, in accordance with oneembodiment. When the operator has completed moving the cobot arm alongthe desired trajectory, the operator can push the same actuator 222again (or another actuator) to stop the recording. Therefore, for anysingle weld, no more than two button clicks are required. The actuatorto start/stop recording may be located on the cobot arm, the cobot body,or the welding torch/gun, in accordance with various embodiments. Otherlocations within the system are possible as well.

In one embodiment, post-processing (e.g., spatial and/or temporalfiltering) of the recorded position points (spatial points) is performedby the cobot welding system (e.g., by the cobot controller 320) and themotion program is updated accordingly. The post-processing results insmoothing the subsequent automatic movement of the cobot along therecorded trajectory as commanded by the motion program. For example, anyunwanted jerky, non-uniform motion (e.g., in position and/ororientation) introduced by the operator when moving the cobot arm isvastly reduced, if not totally eliminated. More uniform time spacingbetween the recorded points is also provided. Furthermore, in accordancewith one embodiment, programming of fine motion of the cobot arm isautomated during post processing (e.g., for weaving along the weldjoint, or when the welding torch/gun is rounding a corner of a weld).

FIG. 3 illustrates one embodiment of a “smart” welding torch 220configured to be used by the collaborative robot 200. The “smart”welding torch 220 is configured to be operatively connected to (attachedto) the arm 210 of the collaborative robot 200. The “smart” weldingtorch 220 includes a first actuator device 222 (e.g., a momentarypush-button device). The first actuator device 222 is on the torch body226 and is configured to be activated by a human user (operator) toinitiate a recording cycle along a path, for example, at a start point227 and to terminate the recording cycle, for example, at a destinationpoint 229 in three-dimensional (3D) space.

In accordance with one embodiment, the first time the first actuatordevice 222 is pressed by the user, the recording cycle is started. Thesecond time the first actuator device 222 is pressed by the user, therecording cycle is ended. The actuator device may be a momentarypush-button device, a switch, or another type of actuator device, inaccordance with various embodiments. Position points 227, 228, and 229in three-dimensional space along the path are automatically recorded bythe robot controller 320 as the operator moves the welding torch 220 (asattached to the cobot arm 210) along the path trajectory (before actualwelding occurs). Again, an actuator does not have to be pushed orswitched in order to indicate each position point to be recorded.Multiple position points (spatial points) defining the trajectory arerecorded automatically as the operator moves the cobot arm, and a motionprogram for the cobot is automatically created. The number of recordedpoints is based on a distance traveled, in accordance with oneembodiment.

FIG. 4 illustrates another embodiment of a welding torch/gun 400attached to a distal end of an arm 210 of the collaborative robot 200 ofFIG. 1 and FIG. 2 . Referring to FIG. 4 , in one embodiment, the “smart”welding torch 400 also includes a second actuator device 224 (e.g.,configured as a dead man's switch). The second actuator device 224 onthe torch body 226 is configured to be activated by a human user toenable the arm 210 of the collaborative robot 200, with the “smart”welding torch 400 connected, to be moved by the human user along adesired path (e.g., an ingress path, an egress path, or a weld path).The “smart” welding torch 400 allows the user to safely move the arm 210of the robot 200 and create path programs (motion programs). When theuser releases the second actuator device 224, the robot arm 210 cannotmove (the arm is locked).

The first and second actuator devices 222 and 224 communicate, eitherdirectly or indirectly, with the robot controller 320 to accomplish thefunctionality described herein, in accordance with one embodiment. Theuser holds down the second actuator device 224 to move the arm 210 whileestablishing start/end locations (to initiate a recording cycle and toterminate the recording cycle using the first actuator device 222) andautomatically recording operator path position points (spatialcoordinate points) without having to manipulate an actuator device ateach recorded point. In this manner, a user does not need to hold ateach pendant tablet, resulting in a more ergonomically friendly processfor the user. In accordance with other embodiments, the actuator device222 may be located elsewhere on the system (e.g., on the cobot arm or onthe servo-mechanism apparatus 230).

FIG. 5 illustrates an example of digitally recorded spatial points 500(dotted line) of an operator path formed by an operator moving an arm210 of the collaborative robot 200 of FIG. 2 in a 3D space of a definedcoordinate system of the robot 200. The operator path of FIG. 5 has astart point 510 (where recording is started) and a destination point 520where recording is ended. For example, in one embodiment, the operatorpath may be an ingress path from the start point 510 to the beginning ofa weld joint position at the destination point 520. However as shown inFIG. 5 , during the process of moving the robot arm 210 from the startpoint 510 to the destination point 520, the operator (for whateverreason) moved the robot arm 210 in an extraneous manner, instead oftaking a more direct path. The portion of the recorded spatial points500 within the depicted dotted-and-dashed oval 530 of FIG. 5 areextraneous spatial points. The extraneous spatial points are a result ofextraneous movements of the arm 210 of the robot 200 by the operator andare not needed to accomplish moving from the start point 510 to thedestination point 520 within the 3D space. For example, maybe theoperator decided to re-orient an angular orientation of the torch 220,which resulted in the extraneous spatial points being recorded.

The programmable robot controller 320 is programmed to identify andeliminate the extraneous spatial points from the recorded spatial points500, leaving a subset of the recorded spatial points 500. In oneembodiment, the extraneous spatial points are identified by the robotcontroller 320 at least in part by the controller 320 analyzing therecorded spatial points 500 to determine which spatial points of therecorded spatial points as recorded are not needed to accomplish movingfrom the start point to the destination point within the 3D space.Referring to FIG. 5 , the robot controller 320 would identify andeliminate the recorded spatial points within the dotted-and-dashed oval530. The term “identify and eliminate” as used herein generally refersto differentiating the extraneous spatial points from the rest of thespatial points as originally recorded.

In accordance with one embodiment, initially identifying the extraneousspatial points may involve computing work space distance relationshipsand/or work space vector relationships for each recorded spatial pointwith respect to the start point and the destination point, and/or withrespect to those recorded spatial points immediately surrounding or nextto each recorded spatial point. Those recorded spatial points havingdistance relationships and/or vector relationships that are outside ofsome defined range(s) may be identified as extraneous spatial points.Other techniques of identifying the extraneous spatial points arepossible as well, in accordance with other embodiments. Eliminating theextraneous spatial points, as identified, may involve deleting theextraneous spatial points from a computer memory, digitally flagging theextraneous spatial points as being extraneous, or some other technique,in accordance with various embodiments.

Once the extraneous spatial points are eliminated, the controller 320can proceed to perform a spatial interpolation operation and/or aspatial smoothing operation on the remaining subset of the recordedspatial points. For example, additional spatial points may be generatedvia interpolation between certain recorded spatial points to fill in anygaps (e.g., between the recorded spatial points 502 and 504 in FIG. 5 ).More uniform time spacing between the recorded points can also beprovided via temporal interpolation, for example. Then, the overalltrajectory formed by the spatial points (as interpolated, if performed)can be smoothed, via a spatial smoothing operation, to eliminate anyunwanted jerky or non-uniform motion from the trajectory. Furthermore,in accordance with one embodiment, programming of fine motion of therobot arm is automated during post processing (e.g., for weaving alongthe weld joint, or when the welding torch/gun is rounding a corner of aweld). Once the remaining recorded spatial points are interpolatedand/or smoothed, the robot controller 320 automatically generates amotion program for the robot. During an actual welding or cuttingoperation, the motion program will command the robot to move such thatresultant trajectory formed by the interpolated and/or smoothed spatialpoints is followed by the robot.

FIG. 6 illustrates a block diagram of an example embodiment of acontroller 600 that can be used, for example, in the welding system 100of FIG. 1 . For example, the controller 600 may be used as the robotcontroller 320 and/or as a controller in the welding power supply 310.Referring to FIG. 6 , the controller 600 includes at least one processor614 (e.g., a microprocessor, a central processing unit, a graphicsprocessing unit) which communicates with a number of peripheral devicesvia bus subsystem 612. These peripheral devices may include a storagesubsystem 624, including, for example, a memory subsystem 628 and a filestorage subsystem 626, user interface input devices 622, user interfaceoutput devices 620, and a network interface subsystem 616. The input andoutput devices allow user interaction with the controller 600. Networkinterface subsystem 616 provides an interface to outside networks and iscoupled to corresponding interface devices in other devices.

User interface input devices 622 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touchscreen incorporated into the display, audio inputdevices such as voice recognition systems, microphones, and/or othertypes of input devices. In general, use of the term “input device” isintended to include all possible types of devices and ways to inputinformation into the controller 600 or onto a communication network.

User interface output devices 620 may include a display subsystem, aprinter, or non-visual displays such as audio output devices. Thedisplay subsystem may include a cathode ray tube (CRT), a flat-paneldevice such as a liquid crystal display (LCD), a projection device, orsome other mechanism for creating a visible image. The display subsystemmay also provide non-visual display such as via audio output devices. Ingeneral, use of the term “output device” is intended to include allpossible types of devices and ways to output information from thecontroller 600 to the user or to another machine or computer system.

Storage subsystem 624 stores programming and data constructs thatprovide some or all of the functionality described herein. For example,computer-executable instructions and data are generally executed byprocessor 614 alone or in combination with other processors. Memory 628used in the storage subsystem 624 can include a number of memoriesincluding a main random access memory (RAM) 630 for storage ofinstructions and data during program execution and a read only memory(ROM) 632 in which fixed instructions are stored. A file storagesubsystem 626 can provide persistent storage for program and data files,and may include a hard disk drive, a solid state drive, a floppy diskdrive along with associated removable media, a CD-ROM drive, an opticaldrive, or removable media cartridges. The computer-executableinstructions and data implementing the functionality of certainembodiments may be stored by file storage subsystem 626 in the storagesubsystem 624, or in other machines accessible by the processor(s) 614.

Bus subsystem 612 provides a mechanism for letting the variouscomponents and subsystems of the controller 600 communicate with eachother as intended. Although bus subsystem 612 is shown schematically asa single bus, alternative embodiments of the bus subsystem may usemultiple buses.

The controller 600 can be of varying types. Due to the ever-changingnature of computing devices and networks, the description of thecontroller 600 depicted in FIG. 6 is intended only as a specific examplefor purposes of illustrating some embodiments. Many other configurationsof a controller are possible, having more or fewer components than thecontroller 600 depicted in FIG. 6 .

In one embodiment, the start point and the destination point of a weldis recorded. A data base is accessed to indicate how to set the variousangles, stick out, etc., based on visually (e.g., optically) observingthe weld joint to determine what type of weld is to be created. Forexample, a camera or a light detection and ranging (Lidar) capabilitymay be employed. Alternatively, a weld wire sensing technique may beused to determine the type of weld (e.g., see U.S. Published PatentApplication No. 2020/0139474 A1 which is incorporated herein byreference it its entirety).

In one embodiment, the automatic recording and filtering of “air move”trajectories between welds is performed. In this manner the operator(user) can focus mainly on the creation of welds (starts, in-betweenpoints, and ends), not so much on the creation of points in the air asthe cobot TCP moves to (ingress) and away from (egress) a weld.

In one embodiment, air motion of the cobot is recorded as a means to mapfree space around the cobot. All “air move” trajectories are recorded tohelp build a map of the entire cobot workspace (free space). For a givenpart to be welded, this information can be used to generatecollision-free trajectories, for example, from one weld to another usingestablished path planning algorithms.

Free space is anywhere the cobot can be located in space as the armmoves. The 3D geometry of all of the arm joints of the cobot is observedas the cobot moves through space. Any space the cobot has moved through(a swept volume) is considered to be free space. This allows for theplanning of new motion that will be collision-free because the new pathwill be somewhere within the swept volume. The work space is effectivelymapped per part (per welding setup for a part positioned in a certainway).

A swept volume is determined, in part, by capturing locations of thejoints of the cobot (e.g., x, y, z location and roll, pitch, yaw of thejoints). Also, the cobot arm is represented in coordinate system spaceby, for example, 3D geometrical volumes (e.g., cylinders and rectangularboxes that take up space). The system keeps track of where these 3Dgeometrical volumes are free to move, as the joints of the cobot armmove, via coordinate transformation math. Therefore, every recordedpoint of where the cobot arm is and how it is positioned is correlatedwith a volume in space formed by the 3D geometrical volumes representingthe cobot arm (i.e., the space that the cobot is occupying for thattorch point). This volume is recorded and will form a part of a sweptvolume when merged with volumes corresponding to other points. Many suchrecorded swept volumes are merged to determine a 3D geometryrepresenting a collision-free space.

Once a free space is determined, the user can position the torch on theend of the cobot wherever he wants and however he wants in the air toget from one weld to another. A path planning algorithm in the cobotwill determine, in an optimal manner, how the torch and cobot arm shouldbe positioned within the free space to get from the one weld to anothersuch that collisions are avoided. This has applications during weldingas well. The user can position the torch on the end of the cobot arm atpoints along a weld path to define a weld path (or just a start pointand an end point of the weld path). The algorithm in the cobot willdetermine how the torch and cobot arm should be positioned within thefree space to traverse the path such that collisions are avoided. Forexample, the algorithm can make torch angle corrections, making sure toavoid collisions.

In various embodiments, the operator can move the cobot all around thepart and weld joints, before welding, to identify the free space, or theoperator can just teach the welds for the part and rely on those air andweld trajectories to define the free space. In one embodiment, the cobotis deliberately allowed to collide with objects in the workspace of thecobot to find and learn a collision-free trajectory. It has beenobserved that cobot collisions are harmless, unlike traditionalindustrial robots. Recording of air motion while an operator moves thearm of the cobot within the workspace is not performed in this case.Instead, the welds are created and the cobot attempts to move its armbetween the welds (from one weld to another) without regard forcollisions. If the cobot collides on its way to the next weld, the cobotcan modify its programmed trajectory in an attempt to find acollision-free trajectory. Information from any collision itself (e.g.,colliding forces) can be used.

Cobots have sensitive torque sensors and feel neutral relative togravity. A vector of force put on the cobot is sensed and the cobotassists in counter-acting gravity, making it easy for a user to move thecobot arm around. A user may teach an ingress to a position on a weldjoint by positioning the torch at the position on the weld joint, butnot teach the optimal torch angle. As the cobot attempts to correct thetorch angle/orientation as part of the ingress, the cobot might collidewith something. A force vector is provided of how the cobot collidedwith the object during the ingress. The cobot can then use its extradegrees of freedom to try to keep away from the object while ingressingto the taught position, but at a correct torch angle/orientation.

In one embodiment, the cobot is simply left with the part and the cobotis programmed to move around on its own, touching the part at differentpoints and colliding into things, learning where the free space islocated. Therefore, when the user goes to move the cobot arm and torchduring ingress to a point (or egress from a point) on the weld, thecobot already has the free space information it needs to provide anoptimal ingress/egress path to the point that is collision-free and putsthe torch at the optimal angle and orientation. The cobot arm isessentially being used as a 3D scanner.

Also, the user could ingress the cobot arm to a start point of a weld,regardless of angle and orientation. Then the cobot can access what theideal, stored angle and orientation is for that point on that type ofweld. When the cobot attempts on its own to ingress to that point, itmay encounter one or more collisions. The cobot can then attempt tore-orient the arm upon ingress, until it finds a collision-free ingresspath to that point that allows the ideal, stored angle and orientationto be achieved at the point.

In one embodiment, an inertial measurement unit (IMU) is placed on thetorch to sense collisions at the torch instead of having to go throughthe mechanism of the robot to sense the collisions and get force vectorsfrom the robot (would have to otherwise read torques from the motors ofthe robot). Also, an IMU on the torch can help with keeping torch anglescorrect while welding. For example, the IMU can provide live updates tothe user about current torch angle/orientation relative to gravity andtell the user the actual orientation at which the weld is happeningcompared to what it was set to before welding began. Such informationcould be provided to the user via a display means. Alternatively, thecobot could be informed of any discrepancy and make adjustments to torchangles (to correspond to the ideally set torch angles) as it proceedswith welding. The IMU could send its data to the welding system, or thecobot controller, or a PC that gets hooked up to the cobot. There couldbe multiple different architectures that might achieve this. Forexample, there can be analog signals out of the IMU that get convertedto digital signals representing angles/orientations/accelerations atsome point, which eventually get communicated to the cobot controller.

Referring again to the drawings, FIG. 7 illustrates a flowchart of oneembodiment of a method 700 of determining a collision-free space for arobotic welding system. At block 710, the method includes fixing alocation of a part to be welded in a 3D coordinate space of a roboticwelding system. FIG. 8 illustrates a 3D geometry representing acollision-free space 810 within a 3D coordinate space having a cobot 200(of a robotic welding system) and a part to be welded 820. In oneembodiment, the part 820 is fixed (e.g., on a welding table) within the3D coordinate space. In another embodiment, the part 820 may be fixed inplace as it is being held by a positioning mechanism.

Again, collision-free space is anywhere the robotic welding system canbe located in space. The 3D geometry of all of the arm joints of thecobot is observed as the cobot moves through space. Anywhere the arm andtorch has been (a swept volume) is considered to be free space. At block720 of the method 700, an arm 210 of the robotic welding system is movedaround the part 820 within the 3D coordinate space. At block 730, datacorresponding to positions and orientations of the arm 210 in the 3Dcoordinate space are recorded as the arm 210 is moved within the 3Dcoordinate space around the part 820. At block 740, the data istranslated to swept volumes of data within the 3D coordinate space. FIG.8 shows examples of two swept volumes 830 and 840 within the 3Dcoordinate space. At block 750 of the method 700, all of the sweptvolumes of data (not just swept volumes 830 and 840) are merged togenerate 3D geometry data representing the continuous collision-freespace 810 within the 3D coordinate space.

The method may further include planning a collision-free motion path ofthe arm through the 3D coordinate space using at least the 3D geometrydata representing the continuous collision-free space 810. FIG. 9illustrates several planned collision-free paths within the continuouscollision-free space 810 of FIG. 8 . For example, referring to FIG. 9 ,the method may include planning a collision-free air motion path 910within the 3D coordinate space from an end point 911 of a first weldseam of the part 820 to a start point 912 of a second weld seam of thepart 820 using position data of the end point 911, position data of thestart point 912, and the 3D geometry data representing the continuouscollision-free space 810. As another example, again referring to FIG. 9, the method may include planning a collision-free welding path 920within the 3D coordinate space from a start point 921 of a weld seam ofthe part 820 to an end point 922 of the weld seam of the part 820 usingat least position data of the start point 921, position data of the endpoint 922, and the 3D geometry data representing the continuouscollision-free space 810. As a further example, referring to FIG. 9 ,the method may include planning a collision-free air motion path 930within the 3D coordinate space from a point 931 away from the part 820to the point 911 of the first weld seam of the part 820 using at leastposition data of the point 931, position data of the point 911, and the3D geometry data representing the continuous collision-free space 810.

In one embodiment, the arm of the robotic welding system is representedby the robotic welding system as 3D geometric volumes that occupy spacewithin the 3D coordinate space. For example, FIG. 10 illustrates oneembodiment of how portions of the arm 210 of the robotic welding systemcobot 200 of FIG. 2 may be represented in a coordinate system space by3D geometric volumes. Each 3D geometric volume 1010, 1020, and 1030(shown in dashed lines in FIG. 10 ) represents a portion of the arm ofthe robotic welding system cobot 200 (including the torch 220 in oneembodiment). The 3D geometric volumes are represented as volume data in3D coordinate space within the controller of the robotic welding system,in accordance with one embodiment.

Moving the arm 210 of the robotic welding system around the part 820within the 3D coordinate space may be accomplished manually by a user inone embodiment (i.e., by the user grabbing and moving the arm 210 asdescribed herein) to find a collision-free space. Alternatively, FIG. 11illustrates a portion of the controller of FIG. 6 (e.g., being used asthe controller 320 of FIG. 1 ) having stored therein a collision-freespace search algorithm 1110 and a collision-free space determinationalgorithm 1120. Therefore, moving the arm 210 of the robotic weldingsystem around the part 820 within the 3D coordinate space may beaccomplished automatically by the controller 600 of the robotic weldingsystem running the collision-free space search algorithm 1110, inaccordance with one embodiment. The collision-free space searchalgorithm 1110 commands the arm 210 to move around within the 3Dcoordinate space, running into objects that are present, to generateswept volumes as described herein.

In one embodiment, the recording, translating, and merging steps of themethod 700 are accomplished by the controller 600 of the robotic weldingsystem by running the collision-free space determination algorithm 1120.In one embodiment, the data corresponding to the positions and theorientations of the arm 210 in the 3D coordinate space are representedby x, y, z location data and roll, pitch, yaw orientation data.Coordinate transformation mathematics is performed by the controller 600of the robotic welding system to accomplish the translating and themerging, in accordance with one embodiment. The result is a 3D geometry(e.g., representing the continuous collision-free space 810) within the3D coordinate space. Data representing the continuous collision-freespace is stored in a memory of the controller 600, in accordance withone embodiment.

In one embodiment, a part to be welded may be moved by a positionermechanism during welding. The robotic welding system knows how the partis being moved in time (e.g., when the positioner mechanism iskinematically controlled by the robotic welding system . . . thekinematic chain of the robotic welding system includes the positionermechanism). The robotic welding system knows where the part andpositioner are located. That is, the robotic welding system knows thepositions and orientations of the joints of the positioner mechanism aswell as the positions and orientations of the joints of the cobot arm ofthe robotic welding system, which are in the form of higher-dimensionaljoint space data.

The term “higher-dimensional” as used herein refers to the dimensions ornumber of axes-of-motion of the cobot in combination with the dimensionsor number of axes-of-motion of the positioner mechanism (the totalnumber of dimensions is higher than that of the cobot alone). Forexample, a cobot may have three axes-of-motion defining a baseline ofthree-dimensions. A positioner mechanism may have two axes-of-motion,for example. Together, the cobot and the positioner mechanism have fiveaxes-of-motion that operate in a higher-dimensional joint space of fivedimensions.

The cobot and the positioner mechanism can move in a coordinated mannerwith respect to each other to search a welding environment, andcontinuous higher-dimensional volume space data can be generated fromthe higher-dimensional joint space data recorded during the movement.The higher-dimensional volume space data represents collision-freeconfigurations of the cobot and the positioner mechanism. In oneembodiment, the higher-dimensional joint space data corresponding tocombined positions and orientations of joints of the arm and joints ofthe positioner mechanism are represented by x, y, z location data androll, pitch, yaw orientation data. The positioner mechanism concept isdiscussed further herein with respect to FIG. 12 and FIG. 13 .

FIG. 12 illustrates one embodiment of the collaborative robot 200 (of arobotic welding system) of FIG. 2 within a 3D space along with apositioner mechanism 1200 for holding and moving a part 1210 to bewelded within the 3D space. In one embodiment, the positioner mechanism1200 is another cobot that is controlled by the robotic welding system100. In one embodiment, the arm 210 is holding a welding tool 220. FIG.13 illustrates a flowchart of one embodiment of a method 1300 ofdetermining continuous higher-dimensional volume space data representingcollision-free configurations for a robotic welding system 100 and apositioner mechanism 1200 for holding and moving a part 1200 to bewelded.

In block 1310, the method 1300 includes moving a positioner mechanism1200 in coordination with moving an arm 210 of a robotic welding system100 through a 3D space of a welding environment. The positionermechanism 1200 is holding a part 1210 to be welded and the arm 210 isholding a welding tool 220, in one embodiment. The robotic weldingsystem 100 has coordinated kinematic control of the arm 210 and thepositioner mechanism 1200. In one embodiment, moving the arm 210 of therobotic welding system 100 in coordination with the positioner mechanism1200 within the 3D space is accomplished automatically by a controller320 of the robotic welding system 100 running a collision-free spacesearch algorithm 1110. At block 1320, record higher-dimensional jointspace data corresponding to combined positions and orientations ofjoints of the arm 210 and joints of the positioner mechanism 1200 as thearm 210 and the positioner mechanism 1200 are moved in coordinationthrough the 3D space. The higher-dimensional joint space data,corresponding to combined positions and orientations of joints of thearm 210 and joints of the positioner mechanism 1200, are represented byx, y, z location data and roll, pitch, yaw orientation data, inaccordance with one embodiment.

At block 1330, map the higher-dimensional joint space data to acontinuous higher-dimensional volume space data that represents 3Dvolumes occupied by at least the arm 210 and the positioner mechanism1200 during the moving. At least the arm 210 of the robotic weldingsystem 100 and the positioner mechanism 1200 may be represented withinthe robotic welding system 100 as data of 3D geometric volumes thatoccupy the 3D space (e.g., as shown for the arm 210 in FIG. 10 ), inorder to help with the mapping to the continuous higher-dimensionalvolume space. The continuous higher-dimensional volume space datarepresents collision-free configurations of at least the arm 210 and thepositioner mechanism 1200. The recording and mapping are accomplished bya controller 320 of the robotic welding system 100 running acollision-free space determination algorithm 1120, in accordance withone embodiment. Coordinate transformation mathematics is performed by acontroller 320 of the robotic welding system 100 to accomplish themapping, in accordance with one embodiment.

In one embodiment, a collision-free motion path of the arm 210 and thepositioner mechanism 1200 through the 3D space is planned (by a pathplanning algorithm) using at least the continuous higher-dimensionalvolume space data representing the collision-free configurations. Forexample, in one embodiment, a collision-free air motion path within the3D space is planned (by a path planning algorithm) from an end point ofa first weld seam of the part 1210 to be welded to a start point of asecond weld seam of the part 1210 to be welded using position data ofthe end point, position data of the start point, and the continuoushigher-dimensional volume space data representing the collision-freeconfigurations. In one embodiment, a collision-free welding path withinthe 3D space is planned (by a path planning algorithm) from a startpoint of a weld seam of the part 1210 to be welded to an end point ofthe weld seam of the part 1210 to be welded using at least position dataof the start point, position data of the end point, and the continuoushigher-dimensional volume space data representing the collision-freeconfigurations.

In one embodiment, a “weld database” containing information about plateangles, torch angles, work angles, stick out, etc. is provided toachieve a particular robotic weld. In one embodiment, a search strategyis automatically generated (tactile or with a more advanced sensor suchas a small camera or a Lidar capability) to accurately locate the weldjoint in space during production, where the part tolerances may varyfrom part to part. In one embodiment, the weld joint is automaticallylocated during the programming process for a new part to be programmedby locating the weld wire (or other sensor) “close enough” to the weldjoint and using a predetermined search strategy to locate the wire moreprecisely within the weld joint.

One embodiment provides advanced 3D sensing/scanning for weld featurerecognition. In one embodiment, the volumes and high mix productionpresent in the cobot space are exploited as training data to train thecobot to recognize weld joints. Training data can be gathered from manycobots within a manufacturing space. There is access to two pieces ofinformation from which to train a machine learning (ML) model: 1) 3Dsensor information, 2) Information about how the user taught aparticular weld joint (i.e., torch angles, weld type, etc.). Such amodel can be used to predict torch angles, weld types, etc., giveninformation from a 3D sensor. The system can offer suggestionsbenefiting the end-user while also gathering the information necessaryto build such an ML model.

Embodiments of the present invention are not limited to cobots. Otherembodiments employing industrial robots are possible as well. Forexample, a user may use a teach pendant to get a robot close in to ajoint, and then let the robot automatically perform a fine tuning ofposition and orientation at the joint. For example, a touch-sensingtechnique may be performed as discussed in U.S. Pat. No. 9,833,857 B2which is incorporated by reference herein in its entirety.

In one embodiment, a database is queried upon weld creation to get basicparameters for the type of weld joint. A user gets the welding wireclose within the weld joint at a position (cobot via user arm, or robotusing teach pendant), then lets the cobot/robot do a search routine toachieve a more fine-tuned positioning within the weld joint (robot knowsjoint type and other parameters, from database, and performs acorresponding search strategy). This is done for each position acrossthe weld joint.

While the disclosed embodiments have been illustrated and described inconsiderable detail, it is not the intention to restrict or in any waylimit the scope of the appended claims to such detail. It is, of course,not possible to describe every conceivable combination of components ormethodologies for purposes of describing the various aspects of thesubject matter. Therefore, the disclosure is not limited to the specificdetails or illustrative examples shown and described. Thus, thisdisclosure is intended to embrace alterations, modifications, andvariations that fall within the scope of the appended claims, whichsatisfy the statutory subject matter requirements of 35 U.S.C. § 101.The above description of specific embodiments has been given by way ofexample. From the disclosure given, those skilled in the art will notonly understand the general inventive concepts and attendant advantages,but will also find apparent various changes and modifications to thestructures and methods disclosed. It is sought, therefore, to cover allsuch changes and modifications as fall within the spirit and scope ofthe general inventive concepts, as defined by the appended claims, andequivalents thereof.

What is claimed is:
 1. A method of determining a collision-free spacefor a robotic welding system, the method comprising: fixing a locationof a part to be welded in a 3D coordinate space of a robotic weldingsystem; moving an arm of the robotic welding system around the partwithin the 3D coordinate space; recording data corresponding topositions and orientations of the arm in the 3D coordinate space as thearm is moved within the 3D coordinate space around the part; translatingthe data to swept volumes of data within the 3D coordinate space; andmerging the swept volumes of data to generate 3D geometry datarepresenting a continuous collision-free space within the 3D coordinatespace.
 2. The method of claim 1, further comprising planning acollision-free motion path of the arm through the 3D coordinate spaceusing at least the 3D geometry data representing the continuouscollision-free space.
 3. The method of claim 1, further comprisingplanning a collision-free air motion path within the 3D coordinate spacefrom an end point of a first weld seam of the part to a start point of asecond weld seam of the part using position data of the end point,position data of the start point, and the 3D geometry data representingthe continuous collision-free space.
 4. The method of claim 1, furthercomprising planning a collision-free welding path within the 3Dcoordinate space from a start point of a weld seam of the part to an endpoint of the weld seam of the part using at least position data of thestart point, position data of the end point, and the 3D geometry datarepresenting the continuous collision-free space.
 5. The method of claim1, wherein the arm of the robotic welding system is represented by therobotic welding system as data of 3D geometric volumes that occupy spacewithin the 3D coordinate space.
 6. The method of claim 1, wherein movingthe arm of the robotic welding system around the part within the 3Dcoordinate space is accomplished manually by a user.
 7. The method ofclaim 1, wherein moving the arm of the robotic welding system around thepart within the 3D coordinate space is accomplished automatically by acontroller of the robotic welding system running a collision-free spacesearch algorithm.
 8. The method of claim 1, wherein the recording,translating, and merging are accomplished by a controller of the roboticwelding system running a collision-free space determination algorithm.9. The method of claim 1, wherein the data corresponding to thepositions and the orientations of the arm in the 3D coordinate space arerepresented by x, y, z location data and roll, pitch, yaw orientationdata corresponding to joints of the arm.
 10. The method of claim 1,wherein coordinate transformation mathematics is performed by acontroller of the robotic welding system to accomplish the translatingand the merging.
 11. A method of determining a collision-free space fora robotic welding system, the method comprising: moving a positionermechanism in coordination with moving an arm of a robotic welding systemthrough a 3D space of a welding environment, wherein the robotic weldingsystem has coordinated kinematic control of the arm and the positionermechanism; recording higher-dimensional joint space data correspondingto combined positions and orientations of joints of the arm and jointsof the positioner mechanism as the arm and the positioner mechanism aremoved in coordination through the 3D space; and mapping thehigher-dimensional joint space data to a continuous higher-dimensionalvolume space data that represents 3D volumes occupied by at least thearm and the positioner mechanism, during the moving, wherein thecontinuous higher-dimensional volume space data representscollision-free configurations of at least the arm and the positionermechanism.
 12. The method of claim 11, further comprising planning acollision-free motion path of the arm and the positioner mechanismthrough the 3D space using at least the continuous higher-dimensionalvolume space data representing the collision-free configurations. 13.The method of claim 11, further comprising planning a collision-free airmotion path within the 3D space from an end point of a first weld seamof a part, being held by the positioner mechanism, to a start point of asecond weld seam of the part using position data of the end point,position data of the start point, and the continuous higher-dimensionalvolume space data representing the collision-free configurations. 14.The method of claim 11, further comprising planning a collision-freewelding path within the 3D space from a start point of a weld seam of apart, being held by the positioner mechanism, to an end point of theweld seam of the part using at least position data of the start point,position data of the end point, and the continuous higher-dimensionalvolume space data representing the collision-free configurations. 15.The method of claim 11, wherein the arm of the robotic welding systemand the positioner mechanism are represented within the robotic weldingsystem as data of 3D geometric volumes that occupy the 3D space.
 16. Themethod of claim 11, wherein moving the arm of the robotic welding systemin coordination with the positioner mechanism within the 3D space isaccomplished automatically by a controller of the robotic welding systemrunning a collision-free space search algorithm.
 17. The method of claim11, wherein the recording and mapping are accomplished by a controllerof the robotic welding system running a collision-free spacedetermination algorithm.
 18. The method of claim 11, wherein thehigher-dimensional joint space data corresponding to combined positionsand orientations of joints of the arm and joints of the positionermechanism are represented by x, y, z location data and roll, pitch, yaworientation data.
 19. The method of claim 11, wherein coordinatetransformation mathematics is performed by a controller of the roboticwelding system to accomplish the mapping.
 20. The method of claim 11,wherein the arm is holding a welding tool and the positioner mechanismis holding a part to be welded.